
#ifndef _GPIO_H_
#define _GPIO_H_
#include "stdint.h"
#include "hc32_ll.h"
#include "hc32_ll_gpio.h"


#define LED_PORT (GPIO_PORT_A)
#define LED_PIN (GPIO_PIN_01)
static void SetLed(void)
{ 
   ((*(volatile uint16_t *)(&CM_GPIO->POSRA))|=((uint16_t)GPIO_PIN_01));
}

static void ResetLed(void)
{
   ((*(volatile uint16_t *)(&CM_GPIO->PORRA))|= ((uint16_t)GPIO_PIN_01));
}

#define LED_H	SetLed()
#define LED_L	ResetLed()


#define CE_PORT (GPIO_PORT_A)
#define CE_PIN (GPIO_PIN_15)
#define CSN_PORT (GPIO_PORT_B)
#define CSN_PIN (GPIO_PIN_15)

#define CE_L GPIO_ResetPins(CE_PORT, CE_PIN) 	
#define CE_H GPIO_SetPins(CE_PORT, CE_PIN) 		
#define CSN_L GPIO_ResetPins(CSN_PORT, CSN_PIN) 
#define CSN_H GPIO_SetPins(CSN_PORT, CSN_PIN) 	

#define IRQ_PORT GPIO_PORT_B
#define IRQ_PIN GPIO_PIN_10
#define READ_IRQ GPIO_ReadInputPins(IRQ_PORT, IRQ_PIN)

#define SHAKE_PORT GPIO_PORT_A
#define SHAKE_PIN GPIO_PIN_03
#define READ_SHAKE GPIO_ReadInputPins(SHAKE_PORT, SHAKE_PIN)
 
 

 

void gpioSpiConfig(void);
void gpioLedConfig(void);
void gpioShakeConfig(void);

#endif
